package br.com.vti.sisp_sicrim.antigo.controller.tela;

import java.util.Arrays;

import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela
 * Idctc008
 * 
 * @author Incode - Data: mai/2014
 * 
 */
public class Idctc008 {
	private boolean enviada = false;
	private String pagina = "/resources/antigo/jsp/Idctc008.jsp";
	private int jPosto;
	private String jDescrPosto;
	private int jDataI;
	private int jDataF;
	private String jDescrTot;
	private int[] jEmissao = new int[13];
	private int[][] jViasDia = new int[13][5];
	private int[] jViasPosto = new int[5];
	private String mensagem = "";
	private String funcao = "0";
	private String campofocus = "";
	private String navegar = "";
	private Boolean temMensagem = false;
	private Result result;
	private Sessao sessao;

	// Classes views
	// Classes includes
	public Idctc008() {
		inicializar(false);
	}

	public Idctc008(boolean primeiraVez, Sessao sessao) {
		this.sessao = sessao;
		inicializar(primeiraVez);
	}

	public void inicializar(boolean primeiraVez) {
		if (primeiraVez) {
			jPosto = 0;
			jDescrPosto = "";
			jDataI = 0;
			jDataF = 0;
			Arrays.fill(jEmissao, 0);
			Arrays.fill(jViasDia, 0);
			jDescrTot = "";
			Arrays.fill(jViasPosto, 0);
		}
	}

	public boolean receberTela(boolean primeiraVez, Result result) {
		// faz o tratamento das criticas necessarias para os dados da tela
		// recebida
		this.result = result;
		temMensagem = false;
		if (!primeiraVez) {
			return validar();
		} else {
			return true;
		}
	}

	public void enviarTela(boolean primeiraVez, Result result, String origem) {
		this.enviada = true;
		// rotina para enviar a tela
		// caso esteja setado valores para acoesFinais, executa as classes
		// correspondentes
		this.result = result;
		if (UtilBean.acoesFinais != null && !UtilBean.acoesFinais.isEmpty()) {
			UtilBean.processaAcao();
		} else {
			enviar(result, origem);
		}
	}

	public void enviar(Result result, String origem) {
		// redicionar para o jsp correspondente
		UtilBean.redireciona(pagina, result, origem);
	}

	public void enviarMensagem(String campo, String mensagem) {
		// formatar a mensagem de erro, posicionar no campo informa
		if (campo != null) {
			campofocus = campo;
		} else {
			campofocus = "";
		}
		this.mensagem = mensagem;
		temMensagem = true;
		// enviar(result, origem);
	}

	public boolean validar() {
		// validar os campos recebidos da tela
		UtilBean.funcao = this.funcao;
		return true;
	}

	public int getJposto() {
		return jPosto;
	}

	public void setJposto(int jPosto) {
		this.jPosto = jPosto;
	}

	public String getJdescrposto() {
		return jDescrPosto;
	}

	public void setJdescrposto(String jDescrPosto) {
		this.jDescrPosto = jDescrPosto;
	}

	public int getJdatai() {
		return jDataI;
	}

	public void setJdatai(int jDataI) {
		this.jDataI = jDataI;
	}

	public int getJdataf() {
		return jDataF;
	}

	public void setJdataf(int jDataF) {
		this.jDataF = jDataF;
	}

	public String getJdescrtot() {
		return jDescrTot;
	}

	public void setJdescrtot(String jDescrTot) {
		this.jDescrTot = jDescrTot;
	}

	public int[] getJemissao() {
		return jEmissao;
	}

	public void setJemissao(int[] jEmissao) {
		this.jEmissao = jEmissao;
	}

	public int[][] getJviasdia() {
		return jViasDia;
	}

	public void setJviasdia(int[][] jViasDia) {
		this.jViasDia = jViasDia;
	}

	public int[] getJviasposto() {
		return jViasPosto;
	}

	public void setJviasposto(int[] jViasPosto) {
		this.jViasPosto = jViasPosto;
	}

	public int getJemissao(int index) {
		return jEmissao[index];
	}

	public void setJemissao(int index, int jEmissao) {
		this.jEmissao[index] = jEmissao;
	}

	public int getJviasposto(int index) {
		return jViasPosto[index];
	}

	public void setJviasposto(int index, int jViasPosto) {
		this.jViasPosto[index] = jViasPosto;
	}

	public int getJviasdia(int index1, int index2) {
		return jViasDia[index1][index2];
	}

	public void setJviasdia(int index1, int index2, int jViasDia) {
		this.jViasDia[index1][index2] = jViasDia;
	}

	public String getFuncao() {
		return funcao;
	}

	public void setFuncao(String funcao) {
		this.funcao = funcao;
	}

	public String getCampofocus() {
		return campofocus;
	}

	public void setCampofocus(String campofocus) {
		this.campofocus = campofocus;
	}

	public String getNavegar() {
		return navegar;
	}

	public void setNavegar(String navegar) {
		this.navegar = navegar;
	}

	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

	public void setMensagemSaida(String mensagem) {
		this.mensagem = mensagem;
	}

	public boolean getEnviada() {
		return this.enviada;
	}

	public void setSessao(Sessao sessao) {
		this.sessao = sessao;
	}
}
